package com.mashibing.dp.singleton;

/**
 * 方案八：枚举：完美中的完美【推荐】，语法中最完美的是这个
 * 《Effective Java》作者推荐使用，有空多读书
 * 不仅可以解决线程同步，还可以防止反序列化。
 * 不被反射的原因：反射方法中不予许使用反射创建枚举对象
 * 不被反序列化的原因：枚举类没有构造方法
 * 问题：听着有些别扭
 * 枚举类：类的对象是有限个，确定的
 * 每个枚举类型及其定义的枚举变量在JVM中都是唯一的
 *
 */
public enum Mgr08 {

    INSTANCE;

    public void m() {}// 具体的业务方法

    public static void main(String[] args) {
        for(int i=0; i<100; i++) {
            new Thread(()->{
                System.out.println(Mgr08.INSTANCE.hashCode());
            }).start();
        }
    }
}
